﻿using ProyectoDeTesis.Controladores;
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace ProyectoDeTesis.Vistas
{
    public partial class EditarUsuario : Form
    {
        private int pantalla_id = 9;
        private int perfil_personal_id;
        private PersonalController personalController = new PersonalController();
        private PerfilController perfilController = new PerfilController();

        public EditarUsuario()
        {
            InitializeComponent();
        }

        public EditarUsuario(int perfil_personal_id)
        {
            // TODO: Complete member initialization
            this.perfil_personal_id = perfil_personal_id;
            InitializeComponent();
            cargarComboPerfil();
            cargarDatosPersonal();
        }

        private void cargarComboPerfil()
        {
            List<ProyectoDeTesis.Perfil> listaPerfil = perfilController.CargarPerfil();

            ProyectoDeTesis.Perfil perfilDefault = new ProyectoDeTesis.Perfil();

            perfilDefault.id = 0;
            perfilDefault.nombre = "Seleccione Perfil";

            listaPerfil.Insert(0, perfilDefault);

            cmbPerfil.DataSource = listaPerfil;
            cmbPerfil.DisplayMember = "nombre";
            cmbPerfil.ValueMember = "id";
        }

        private void cargarDatosPersonal()
        {
            PerfilPersonal personal = personalController.buscarPersonalxId(perfil_personal_id);
            Usuario usuario = personal.Usuario;

            textUsuario.Text = usuario.nombre_usuario;
            textNombre.Text = personal.nombre;
            textApPaterno.Text = personal.ap_paterno;
            textApMaterno.Text = personal.ap_materno;
            dateTimeFechaNac.Value = Convert.ToDateTime(personal.fecha_nac);
            textDireccion.Text = personal.direccion;
            textTelefono.Text = personal.telefono;
            textCorreo.Text = personal.correo;
            cmbPerfil.SelectedValue = usuario.perfil_id;
            
        }

        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            guardarUsuario();
            
        }

        private void BtnCancelarBarra_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void BtnCancelar_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void guardarUsuario()
        {
            string usuario = textUsuario.Text;
            string nombres = textNombre.Text;
            string apellido_paterno = textApPaterno.Text;
            string apellido_materno = textApMaterno.Text;
            DateTime fecha_nacimiento = dateTimeFechaNac.Value;
            string direccion = textDireccion.Text;
            string telefono = textTelefono.Text;
            string correo = textCorreo.Text;
            int perfil_id = Convert.ToInt32(cmbPerfil.SelectedValue);
            int turno = 0;

            switch (Convert.ToString(cmbturno.SelectedValue))
            {
                case "Mañana":
                    turno = 1;
                    break;
                case "Tarde":
                    turno = 2;
                    break;
                case "Noche":
                    turno = 3;
                    break;
            }

            if (personalController.actualizarUsuario(this.perfil_personal_id, usuario, nombres, apellido_paterno, apellido_materno, fecha_nacimiento, direccion, telefono, correo, perfil_id, turno))
            {
                FormAceptar aceptar = new FormAceptar();
                aceptar.ShowDialog(this);
                this.resultadoVentana = true;
                this.Dispose();
            }
            else 
            {
                this.resultadoVentana = false;
            }           
        }

        public bool resultadoVentana { get; set; }

        private void BtnAceptar_Click_1(object sender, EventArgs e)
        {
            guardarUsuario();
        }

        private void BtnCancelar_Click_1(object sender, EventArgs e)
        {
            this.Dispose();
        }
    }
}
